Colin Walters [Sat, 7 Jan 2012 16:47:26 +0000 (11:47 -0500)]
gnomeos: Move gnome-common to devel component
Don't need it in runtime.
Colin Walters [Sat, 7 Jan 2012 16:26:34 +0000 (11:26 -0500)]
gnomeos: Fix gnomeos-run.sh to use new naming scheme
Colin Walters [Sat, 7 Jan 2012 16:26:12 +0000 (11:26 -0500)]
core: Make local-clone handle nested refs/heads directories
Colin Walters [Sat, 7 Jan 2012 16:11:51 +0000 (11:11 -0500)]
core: Ensure we abort transaction if we fail in the middle
Otherwise we could leave a lot of temp files lying around.
Colin Walters [Sat, 7 Jan 2012 16:11:17 +0000 (11:11 -0500)]
gnomeos: Delete now upstream pixman patch
Colin Walters [Sat, 7 Jan 2012 01:11:50 +0000 (20:11 -0500)]
gnomeos: --disable-silent-rules globally
Colin Walters [Sat, 7 Jan 2012 01:10:07 +0000 (20:10 -0500)]
gnomeos: --disable-silent-rules for cairo
Colin Walters [Sat, 7 Jan 2012 01:03:04 +0000 (20:03 -0500)]
gnomeos: Pull in more of X, we're on cairo now
Colin Walters [Sat, 7 Jan 2012 01:02:46 +0000 (20:02 -0500)]
ostbuild: Switch to JSON metadata, various other fixes
Colin Walters [Fri, 6 Jan 2012 23:02:47 +0000 (18:02 -0500)]
gnomeos: Switch to GNU awk
Colin Walters [Fri, 6 Jan 2012 19:07:38 +0000 (14:07 -0500)]
gnomeos: add libXau
Colin Walters [Fri, 6 Jan 2012 19:07:20 +0000 (14:07 -0500)]
ostbuild: Don't fail if trying to rename() across a bind mount
Colin Walters [Fri, 6 Jan 2012 19:06:28 +0000 (14:06 -0500)]
ostbuild: Make use of --recompose
Colin Walters [Fri, 6 Jan 2012 19:05:51 +0000 (14:05 -0500)]
gnomeos: Initial commit should be a compose
This is just cleaner - we know where the ref came from, rather
than making it a copy, and also we can use it with the new
--recompose bits to keep adding to it.
Colin Walters [Fri, 6 Jan 2012 19:04:39 +0000 (14:04 -0500)]
core: Make --recompose skip passed arguments if they were already composed
This allows us to do "--recompose -b foo bar baz" and add bar and baz
iff they weren't already there.
Colin Walters [Fri, 6 Jan 2012 16:41:27 +0000 (11:41 -0500)]
ostbuild: Use split out linux-user-chroot binary
This way other meta-build projects could use it; mainly mock/pbuilder.
Also I don't have to keep running chown root:root; chmod u+s in a
separate root terminal after every install.
Colin Walters [Fri, 6 Jan 2012 00:10:09 +0000 (19:10 -0500)]
gnomeos: Move everything into JSON, start plowing through X.org
Also:
* Stop generating tarballs for artifacts, use plain directories
* Commit artifacts as uid/gid 0, with no xattrs
Other misc stuff
Colin Walters [Fri, 6 Jan 2012 00:07:47 +0000 (19:07 -0500)]
gnomeos: Switch to GNU tar
Colin Walters [Thu, 5 Jan 2012 23:56:21 +0000 (18:56 -0500)]
core: Add --no-xattrs option for commit
Will be used by ostbuild.
Colin Walters [Thu, 5 Jan 2012 23:27:21 +0000 (18:27 -0500)]
core: Error out cleanly if user attempts to commit an empty tree
Colin Walters [Wed, 4 Jan 2012 00:09:12 +0000 (19:09 -0500)]
gnomeos: We can now build gobject-introspection
Colin Walters [Wed, 4 Jan 2012 00:07:02 +0000 (19:07 -0500)]
gnomeos: Add python-dev to devel image, drop pseudo
We need python-dev for gobject-introspection at least, and we don't
need pseudo at this time.
Colin Walters [Wed, 28 Dec 2011 16:31:50 +0000 (11:31 -0500)]
gnomeos: Add python-misc too so we get argparse
For some reason in the current yocto argparse is in python-misc.
Colin Walters [Tue, 27 Dec 2011 23:08:46 +0000 (18:08 -0500)]
gnomeos: Include Python files in main ostree package
Colin Walters [Tue, 27 Dec 2011 15:36:36 +0000 (10:36 -0500)]
.gitignore: Also ignore _build
This is automake's default build directory.
Colin Walters [Tue, 27 Dec 2011 15:32:28 +0000 (10:32 -0500)]
core: Make compose skip commit if tree is identical
This was a new option for commit, but we always want to do it
for a compose.
Colin Walters [Tue, 27 Dec 2011 15:31:23 +0000 (10:31 -0500)]
tests: Fix metadata test, we removed the spurious =
Colin Walters [Tue, 27 Dec 2011 03:09:14 +0000 (22:09 -0500)]
core: Add --print-metadata-key option for show
Useful for tools to extract simple metadata.
Colin Walters [Fri, 23 Dec 2011 23:46:19 +0000 (18:46 -0500)]
Add an initial man page - ostree(1)
Heavily cribbed from systemd - thanks Lennart!
Colin Walters [Fri, 23 Dec 2011 17:15:57 +0000 (12:15 -0500)]
ostbuild: Port chroot-compile-one to ostbuild executor
Colin Walters [Fri, 23 Dec 2011 15:57:54 +0000 (10:57 -0500)]
ostbuild: Port commit-artifacts to ostbuild executor
Colin Walters [Fri, 23 Dec 2011 15:48:57 +0000 (10:48 -0500)]
ostbuild: Move autodiscover-meta to ostbuild executor
Colin Walters [Fri, 23 Dec 2011 15:40:27 +0000 (10:40 -0500)]
ostbuild: Make new 'ostbuild' main entry point, and compile-one a subcommand
The collection of Python scripts here have gotten to the point where
we need to share code. Start refactoring things so that we have one
main command which imports subcommands as libraries.
Colin Walters [Fri, 23 Dec 2011 12:46:08 +0000 (07:46 -0500)]
ostbuild: Propagate buildroot version, finish add-artifacts
We need to track what buildroot each artifact was created in.
Colin Walters [Fri, 23 Dec 2011 12:45:13 +0000 (07:45 -0500)]
gnomeos: Add --skip-if-unchanged for yocto commit, also show a diff after building
We don't want to make new commits if nothing changed.
Colin Walters [Fri, 23 Dec 2011 12:14:48 +0000 (07:14 -0500)]
core: Add --add-metadata-string option for commit
A convenience function for the common case of slapping a string into
the metadata.
Colin Walters [Fri, 23 Dec 2011 12:12:03 +0000 (07:12 -0500)]
core: Fix libarchive test count
Colin Walters [Fri, 23 Dec 2011 11:49:04 +0000 (06:49 -0500)]
core: Add --tar-autocreate-parents option for commit
The tar files we're making of artifacts don't include parent
directories. Now we could change the builder to make them, but we can
also just autocreate them on import. Mode 0755 with no xattrs seems
OK here.
Colin Walters [Fri, 23 Dec 2011 00:52:30 +0000 (19:52 -0500)]
core: Fix build with libarchive disabled
Colin Walters [Thu, 22 Dec 2011 23:47:30 +0000 (18:47 -0500)]
core: Add --skip-if-unchanged option for commit
There's not much point for OS builds to have "empty" commits.
Colin Walters [Thu, 22 Dec 2011 22:00:58 +0000 (17:00 -0500)]
core: Add some more sanity checks to pull when parsing metadata
Colin Walters [Thu, 22 Dec 2011 21:50:01 +0000 (16:50 -0500)]
core: Preemptively error out on paths longer than PATH_MAX
Just noticed this while thinking like an attacker.
Colin Walters [Thu, 22 Dec 2011 20:59:47 +0000 (15:59 -0500)]
core: Allow / in ref names like git does
Using / is nice basically.
Colin Walters [Thu, 22 Dec 2011 18:19:30 +0000 (13:19 -0500)]
gnomeos: Update yocto commit script for new commit commandline syntax
Colin Walters [Thu, 22 Dec 2011 16:23:16 +0000 (11:23 -0500)]
core: Use global random object
We were pointlessly creating a new rand (and thus opening /dev/random)
on every temp file creation, but still using the global rand.
Colin Walters [Thu, 22 Dec 2011 16:07:55 +0000 (11:07 -0500)]
core: Drop unix::is-mountpoint from fast queryinfo flags
If this is present, we call access() and stat() on the parent
directory.
Colin Walters [Thu, 22 Dec 2011 16:04:08 +0000 (11:04 -0500)]
core: Use GFile for repo constructor API, and a bit more internally
Also, ensure that the repo directory GFile is absolute - this avoids
a getcwd() syscall every time we construct a GFile object.
Colin Walters [Thu, 22 Dec 2011 15:29:16 +0000 (10:29 -0500)]
core: Add --recompose option for compose
This will allow us to easily regenerate a compose without passing the
full list of components each time.
Colin Walters [Thu, 22 Dec 2011 02:42:13 +0000 (21:42 -0500)]
core: Change compose to operate purely in-memory
This is *significantly* faster than checking out each branch into the
real filesystem, then importing it again.
Colin Walters [Thu, 22 Dec 2011 01:10:10 +0000 (20:10 -0500)]
core: Allow specifying a previous commit tree as a basis for a new commit
It's pretty trivial to map a previously existing commit tree into a
mutable tree too. While we're here change the command line arguments
for commit so that we can now properly overlay any combination of
directory, commit, or tarfile.
Colin Walters [Wed, 21 Dec 2011 23:58:44 +0000 (18:58 -0500)]
core: Expose more details of commit via API
Rather than offering high level "commit directory", instead perform
operations on a mtree. Commits are treated more like regular objects.
Change the commit builtin to drive this all at a lower level.
Colin Walters [Wed, 21 Dec 2011 23:58:27 +0000 (18:58 -0500)]
core: Add omitted mutable tree files
Colin Walters [Wed, 21 Dec 2011 22:13:04 +0000 (17:13 -0500)]
core: Rename "store" public APIs to "stage" since that's what they do
Colin Walters [Wed, 21 Dec 2011 18:41:38 +0000 (13:41 -0500)]
core: Make OstreeRepoFile "public"
* "ls" used it
* It's not like our internal API is 100% stable anyways
* The _ is ugly
Colin Walters [Wed, 21 Dec 2011 18:34:10 +0000 (13:34 -0500)]
core: Add new "mutable tree" class, use it for tar file import
The tar import code forced the resuscitation of a hackish "FileTree"
data type for representing an in-memory tree. Split this out
into an OstreeMutableTree class for future use by any other in-memory
tree construction.
Colin Walters [Wed, 21 Dec 2011 16:01:41 +0000 (11:01 -0500)]
core: Remove dead code from OstreeRepoFile
Originally I thought it would make sense for OstreeRepoFile to be
mutable, and it probably does, but we should do it in a different way.
Colin Walters [Wed, 21 Dec 2011 15:52:57 +0000 (10:52 -0500)]
ostbuild: Separate metadata discovery, kill wrapper scripts
Add a simple KEY=VALUE metadata file format, and rather than
assuming 'basename' at a low level, allow passing e.g. NAME=gtk3
to override "gtk+".
The wrapper scripts are annoying...for now let's just remove them.
Colin Walters [Tue, 20 Dec 2011 23:45:20 +0000 (18:45 -0500)]
ostbuild: In chroot build, reuse source directory basename
This ensures that the output artifacts are named correctly, and not
"source".
Colin Walters [Tue, 20 Dec 2011 23:42:27 +0000 (18:42 -0500)]
ostbuild: Ensure private libraries are in runtime, and kill .la files
A regular libfoo.so not in one of the regular directories should go in
runtime. (Probably we should double check it's a regular file too).
Also, delete .la files unconditionally.
Colin Walters [Tue, 20 Dec 2011 22:21:15 +0000 (17:21 -0500)]
core: Support committing multiple tarballs in the same transaction
ostbuild will generate two artifacts: foo-runtime.tar.gz and
foo-devel.tar.gz in the general case. When committing to the devel
tree, it'd be lame (i.e. slower and not atomic) to have to commit
twice.
Colin Walters [Tue, 20 Dec 2011 19:44:51 +0000 (14:44 -0500)]
gnomeos: Rename images to "runtime" and "devel"
They're just better names, and this matches what the
default artifact splitter is doing now.
Colin Walters [Tue, 20 Dec 2011 02:44:32 +0000 (21:44 -0500)]
ostbuild: Flesh out chroot build to use ostbuild-user-chroot
One thing that made this take significantly longer than it might
have otherwise is that we have to keep PWD "up to date" - otherwise
we hit bugs in glibc's getcwd() implementation.
Colin Walters [Tue, 20 Dec 2011 02:43:51 +0000 (21:43 -0500)]
gnomeos: Pull in ostree from working copy directly
We'll just try to keep it stable.
Colin Walters [Sun, 18 Dec 2011 23:37:48 +0000 (18:37 -0500)]
core: Install unversioned .so, and kill .la file
This avoids Yocto barfing on a versioned shared library symbolic link
without a -dev package.
Colin Walters [Sun, 18 Dec 2011 22:36:46 +0000 (17:36 -0500)]
core: Support --owner-uid and --owner-gid options for commit
This allows us to more easily import user-built tarballs into
a root-owned OSTree repo.
Colin Walters [Sun, 18 Dec 2011 22:35:30 +0000 (17:35 -0500)]
tests: Ensure we quote grep pattern
Otherwise we fail if the pattern starts with -
Colin Walters [Thu, 15 Dec 2011 21:12:31 +0000 (16:12 -0500)]
core: In user mode checkouts of archives, use hard links
Now that we've done all the gyrations to separate content from
metadata in archives, we can just hard link when doing user checkouts.
Colin Walters [Thu, 15 Dec 2011 20:13:51 +0000 (15:13 -0500)]
core: Fix a few memory leaks
Colin Walters [Thu, 15 Dec 2011 20:03:29 +0000 (15:03 -0500)]
gnomeos: Don't make device files
We don't need them any more inside a chroot now that we have
ostbuild-user-chroot.
Colin Walters [Thu, 15 Dec 2011 18:11:47 +0000 (13:11 -0500)]
core: INCOMPATIBLE CHANGE: Split archive files in two parts (meta and content)
This will allow us to have hardlink checkouts of archives. A key use
case here is an archive repo of an OS (with root-owned files etc.)
where we want to do builds in a user tree.
A positive side effect of doing things this way is that now the SHA256
checksums for a given file should be identical regardless of whether
it's stored in an archive or bare repository.
Colin Walters [Thu, 15 Dec 2011 18:10:41 +0000 (13:10 -0500)]
core: Don't insert null byte in temporary file names
Colin Walters [Thu, 15 Dec 2011 18:09:51 +0000 (13:09 -0500)]
core: Add utility functions to convert a OstreeObjectType to/from a string
Colin Walters [Fri, 9 Dec 2011 17:40:41 +0000 (12:40 -0500)]
core: INCOMPATIBLE CHANGE: Name repo files with their type (e.g. .dirmeta)
This makes inspection easier. Internally the code gets simpler because
metadata and files are more unified; there is just one object type.
Colin Walters [Mon, 12 Dec 2011 17:13:32 +0000 (12:13 -0500)]
osbuild: Make a MS_NOSUID bind mount over /
This closes a serious issue in that we still do a uid switch to 0 when
executing a suid binary, even though we're not gaining capabilities.
Colin Walters [Thu, 8 Dec 2011 23:23:13 +0000 (18:23 -0500)]
core: Initialize variables in fsck
Otherwise we segfault on an unhandled filename.
Colin Walters [Thu, 8 Dec 2011 23:04:37 +0000 (18:04 -0500)]
core: Change fsck to use packfile parsing API
Colin Walters [Thu, 8 Dec 2011 22:45:37 +0000 (17:45 -0500)]
core: s/pack/archived/
This completes the rename from the previous commit.
Colin Walters [Thu, 8 Dec 2011 22:31:45 +0000 (17:31 -0500)]
core: Make ot_transfer_out_value() take a & for the second argument
As Ray Strode argued, it's confusing to have something that looks like
a function be magical. And OT_TRANSFER_OUT_VALUE is uglier.
Colin Walters [Thu, 8 Dec 2011 22:15:59 +0000 (17:15 -0500)]
core: INCOMPATIBLE CHANGE: Rename .packfile to .archive
It's too confusing that we call the mode "archive" but the actual
files ".packfile". Also, git already has a "packfile" that serves a
totally different purpose.
Colin Walters [Thu, 8 Dec 2011 22:05:16 +0000 (17:05 -0500)]
core: Switch is_archive to an enumeration
This is in preparation for adding a third mode.
Colin Walters [Thu, 8 Dec 2011 19:55:41 +0000 (14:55 -0500)]
core: Delete some dead code
Colin Walters [Thu, 8 Dec 2011 15:24:35 +0000 (10:24 -0500)]
core: Clean up checkout code
Take a GFile * for destination. Also, we only need one recursive
function, not two.
Colin Walters [Wed, 7 Dec 2011 15:52:42 +0000 (10:52 -0500)]
user-chroot: Add --unshare-pid, --unshare-net, and --mount-proc
To use CLONE_NEWPID we have to actually call clone() because it's
not supported by unshare().
To enable CLONE_NEWPID to be useful, we have to allow creating a new
proc mount rather than binding an existing one.
Colin Walters [Wed, 7 Dec 2011 14:48:38 +0000 (09:48 -0500)]
ostbuild: Add --unshare-ipc flag for user-chroot
This optionally closes down more paths to the host, which is
a good thing.
Colin Walters [Wed, 7 Dec 2011 02:38:04 +0000 (21:38 -0500)]
core: Add -U option for checkout to skip lchown() and xattrs
This is useful for checking out an OS filesystem tree as a regular
user, and not caring about /dev and stuff.
Colin Walters [Wed, 7 Dec 2011 01:16:03 +0000 (20:16 -0500)]
core: Ensure we chown created directories too
Colin Walters [Wed, 7 Dec 2011 01:09:09 +0000 (20:09 -0500)]
core: Remove some useless wrapping of packfile unpacking in checkout
Colin Walters [Wed, 7 Dec 2011 00:37:01 +0000 (19:37 -0500)]
ostbuild: Compile and install ostbuild-user-chroot
It still needs to be made setuid.
Colin Walters [Wed, 7 Dec 2011 00:36:42 +0000 (19:36 -0500)]
ostbuild: Also allow making directories read-only
Colin Walters [Tue, 6 Dec 2011 19:39:30 +0000 (14:39 -0500)]
ostbuild: Clarify "safely" for user-chroot
Colin Walters [Tue, 6 Dec 2011 19:36:57 +0000 (14:36 -0500)]
ostbuild: Recursively make mount points private
This ensures we're not going to mutate any global state.
Colin Walters [Tue, 6 Dec 2011 19:06:45 +0000 (14:06 -0500)]
ostbuild: Allow binding arbitrary directories, don't hardcode /proc /dev
This is just more flexible, and eventually we want this to be a
generic user-chroot tool.
Colin Walters [Tue, 6 Dec 2011 17:18:17 +0000 (12:18 -0500)]
ostbuild: Ensure user chroot mounts are not shared
It's possible that the root filesystem mount is global; we need
to undo that in order to be sure that our "private" bind mounts
really are private.
Colin Walters [Tue, 6 Dec 2011 15:43:01 +0000 (10:43 -0500)]
ostbuild: Update user-chroot to bind mount /proc and /dev
Colin Walters [Mon, 5 Dec 2011 19:21:18 +0000 (14:21 -0500)]
core: Major cleanup to internal import API
Colin Walters [Mon, 5 Dec 2011 16:20:14 +0000 (11:20 -0500)]
core: Further unify code for importing from local FS and libarchive
Note this change makes it so we no longer call link() from an import
filesystem tree to the repository. This is a Good Thing really; it
makes local FS commits slower, but also less prone to corruption.
Colin Walters [Mon, 5 Dec 2011 16:15:12 +0000 (11:15 -0500)]
core: Ensure we initialize checksum in FIFO case too
Colin Walters [Mon, 5 Dec 2011 15:28:42 +0000 (10:28 -0500)]
core: Add _from_input variant of checksum API
Colin Walters [Sun, 4 Dec 2011 21:44:19 +0000 (16:44 -0500)]
ostbuild: ostbuild-user-chroot: New Linux-specific utility for safe chroots
Colin Walters [Sun, 4 Dec 2011 19:56:21 +0000 (14:56 -0500)]
gnomeos: Make run script transparently update existing FS image
This is noticeably faster.